
// 这里做request请求的封装

// 引入模块
import axios from "axios"

const instance = axios.create({
    // 在学校外面用的baseURL
    // baseURL: "http://520it.com:8881/cms"
    // 在学校里面用的baseURL
    // baseURL: "http://192.168.113.249:8081/cms"
    // 用代理地址==>解决跨域问题
    baseURL: "/api"
});

// 以下是设置拦截器
// 请求拦截器
instance.interceptors.request.use(config => {

    // console.log("请求拦截器，每一次发起请求前，都会先执行这里的代码");
    // console.log(config); //config本次请求的配置信息
    const token = localStorage.getItem('token');
    if (token) {
        // 如果请求的数据有token，就把请求头上带上token这个参数
        config.headers["x-auth-token"] = token;
    }
    // 如果没有token，就普通请求
    return config;
}, err => {
    return Promise.reject(err)
})
// 相应拦截器
instance.interceptors.response.use(res => {
    // console.log("相应拦截器，每一次接收到响应,都会先执行这里的代码,再去执行成功的那个回调函数then");
    // return res.data;

    // 我们在这里统一处理接口访问出错的提示
    if (res.data.code != 0 && res.data.code != 400 && res.data.code != 407) {
        // 如果没有得到正确相应的数据，就报它相应的错误提示
        alert(res.data.message || res.data.msg)
        return false;
    }
    return res;
}, err => {
    return Promise.reject(err)
})

// 导出对象  instance就是axios的实例对象
export default instance

/* 
  在一个文件或模块中，export、import可以有多个，export default仅有一个
  通过export方式导出，在导入时要加{ }，且不能自定义名字，export default不用加{ }，且可以自定义名字
*/